home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib14.dsk / MATH MONSTER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  6KB  |  75 lines

  1. 10  REM     **********************
  2. 11  REM     *    MATH MONSTER    *
  3. 12  REM     *   BY DONALD NUTE   *
  4. 13  REM     * COPYRIGHT (C) 1983 *
  5. 14  REM     * BY MICROSPARC, INC *
  6. 15  REM     * LINCOLN, MA. 01773 *
  7. 16  REM     **********************
  8. 20  PRINT  CHR$(4)"BLOAD MM.OBJ": POKE 232,0: POKE 233,64: GOSUB 40: GOTO 80
  9. 30  POKE 768,T: POKE 769,D: CALL 770: FOR I = 1 TO W: NEXT : RETURN 
  10. 40  POKE 770,173: POKE 771,48: POKE 772,192: POKE 773,136: POKE 774,208: POKE 775,5: POKE 776,206: POKE 777,1: POKE 778,3: POKE 779,240: POKE 780,9
  11. 50  POKE 781,202: POKE 782,208: POKE 783,245: POKE 784,174: POKE 785,0: POKE 786,3: POKE 787,76: POKE 788,2: POKE 789,3: POKE 790,96: RETURN 
  12. 60 T = 181:D = 200:W = 25: GOSUB 30:T = 255:D = 255: GOSUB 30: RETURN 
  13. 70 T = 161:D = 255:W = 25: GOSUB 30: GOSUB 30: GOSUB 30:T = 136:D = 150:W = 0: GOSUB 30:T = 144: GOSUB 30:W = 50: GOSUB 30:T = 161:W = 0: GOSUB 30:W = 50: GOSUB 30:T = 171:W = 0: GOSUB 30:T = 161:D = 255: GOSUB 30: RETURN 
  14. 80  TEXT : POKE 34,20: HOME : HGR : SCALE= 4: ROT= 0: HCOLOR= 3: DRAW 4 AT 150,100: SCALE= 1: PRINT "** COPYRIGHT 1983 BY MICROSPARC, INC **": HTAB 6: PRINT "MATH MONSTER BY DONALD NUTE": PRINT "0=INSTRUCTIONS   1=MULTIPLY   2=DIVIDE": HTAB 13: PRINT "YOUR CHOICE: ";
  15. 90  POKE  -16368,0
  16. 100  FOR I = 1 TO 50: NEXT :A =  PEEK( -16384) -176: IF A >2  OR A <0  THEN A =  RND(1): POKE  -16368,0: GOTO 100
  17. 110  POKE  -16368,0
  18. 120  IF A = 0  THEN 520
  19. 121  PRINT : PRINT : PRINT "PRESS A KEY TO SELECT THE SPEED:": PRINT : PRINT "F=FAST M=MEDIUM S=SLOW V=VERY SLOW ";: GET SP$: PRINT 
  20. 122  IF SP$ = "F"  THEN SP = 30
  21. 123  IF SP$ = "M"  THEN SP = 100
  22. 124  IF SP$ = "S"  THEN SP = 200
  23. 125  IF SP$ = "V"  THEN SP = 255
  24. 130  HGR :NR = 3: HCOLOR= 3: DRAW 3 AT 235,5: DRAW 3 AT 235,25: DRAW 3 AT 235,45
  25. 140  HOME : HCOLOR= 3:M = 20:LM = 20:R = 100:MS = 4:RS = 1: DRAW MS AT M,100: DRAW RS AT R,100: DRAW 7 AT 230,100:SP = (SP -10) *(SP >0)
  26. 145  HOME :E = 0
  27. 150 X =  INT( RND(1) *8) +2
  28. 160 Y =  INT( RND(1) *8) +2: IF X *Y <10  THEN 160
  29. 170  POKE  -16368,0: IF A = 2  THEN  HTAB 10: PRINT X *Y" DIVIDED BY "X" = ";: GOTO 190
  30. 180  HTAB 15: PRINT X" X "Y" = ";
  31. 190 I = 1
  32. 200  FOR I = 1 TO SP:Z =  PEEK( -16384) -176: IF Z >0  AND Z <10  THEN  POKE  -16368,0:J = I:I = SP: NEXT : GOTO 280
  33. 220  NEXT 
  34. 230 ML = M:M = M +2: IF M = R -6  THEN 380
  35. 240  HCOLOR= 0: DRAW MS AT M -2,100:MS = 4 +(MS = 4): HCOLOR= 3: DRAW MS AT M,100:Z =  PEEK( -16384) -176: IF Z >0  AND Z <10  THEN  POKE  -16368,0: IF   NOT (E)  THEN LM = M:J = SP: GOTO 280
  36. 250  IF Z >0  THEN  POKE  -16368,0
  37. 260  IF M = LM +20  THEN LM = M: ON   NOT (E) GOTO 190: GOTO 145
  38. 270  GOTO 230
  39. 280  PRINT Z;: POKE  -16368,0: IF A = 2  THEN  PRINT : ON (Z = Y) +1 GOTO 350,310
  40. 290  FOR J = J TO SP:W =  PEEK( -16384) -176: IF W =  -40  THEN  PRINT  CHR$(8)" " CHR$(8);:I = J:J = SP: NEXT : GOTO 200
  41. 291  IF W > = 0  AND WW <10  THEN  POKE  -16368,0:J = SP: NEXT : GOTO 300
  42. 292  NEXT :I = SP:J = 1
  43. 293 M = M +2: IF M = R -6  THEN 380
  44. 294  HCOLOR= 0: DRAW MS AT M -2,100:MS = 4 +(MS = 4): HCOLOR= 3: DRAW MS AT M,100:W =  PEEK( -16384) -176: IF W =  -40  THEN  PRINT  CHR$(8)" " CHR$(8);: GOTO 230
  45. 295  IF W > = 0  AND W <10  THEN  POKE  -16368,0:LM = M: GOTO 300
  46. 296  IF M = LM +20  THEN LM = M: GOTO 290
  47. 297  GOTO 293
  48. 300  PRINT W: IF X *Y < >10 *Z +W  THEN 350
  49. 310  PRINT : HTAB 12: PRINT "THAT'S CORRECT.": FOR I = 1 TO 1000: NEXT : HOME 
  50. 320 R = R +2: HCOLOR= 0: DRAW RS AT R -2,100:RS = 1 +RS *(RS <3): HCOLOR= 3: DRAW RS AT R,100: IF  INT(R/20) = R/20  THEN 145
  51. 330  IF R = 230  THEN 430
  52. 340  GOTO 320
  53. 350  FOR I = 1 TO 50:B =  PEEK( -16336): NEXT : HOME : IF A = 1  THEN  HTAB 15: PRINT X" X "Y" = "X *Y
  54. 360  IF A = 2  THEN  HTAB 10: PRINT X *Y" DIVIDED BY "X" = "Y
  55. 370  FOR I = 1 TO 2000: NEXT :E = 1: GOTO 230
  56. 380  HCOLOR= 0: DRAW RS AT R,100: HCOLOR= 3: DRAW 6 AT M,100: HOME : IF A = 1  THEN  HTAB 15: PRINT X" X "Y" = "X *Y
  57. 390  IF A = 2  THEN  HTAB 10: PRINT X *Y" DIVIDED BY "X" = "Y
  58. 400  GOSUB 60: FOR I = 1 TO (1000 +4 *SP): NEXT : HCOLOR= 0: DRAW MS AT M -2,100: DRAW 6 AT M,100:NR = NR -1: DRAW 3 AT 235,5 +NR *20: IF NR >0  THEN SP = SP +10: GOTO 140
  59. 410  HOME : HTAB 15: PRINT "GAME OVER": PRINT : HTAB 13: PRINT "PLAY AGAIN? ";: GET A$: PRINT : IF A$ = "Y"  THEN  HCOLOR= 0: DRAW MS AT M,100: DRAW 7 AT M,100: CLEAR : GOTO 80
  60. 420  TEXT : HOME : END 
  61. 430  HCOLOR= 0: DRAW RS AT 230,100: DRAW 7 AT 230,100: HCOLOR= 3:RS = 8: DRAW RS AT R,100
  62. 440  IF R <M +15  THEN 460
  63. 450 OS = RS:RS = 8 +(RS = 8): HCOLOR= 0:R = R -2: DRAW OS AT R +2,100: HCOLOR= 3: DRAW RS AT R,100: GOTO 440
  64. 460  HCOLOR= 0: DRAW RS AT R,100: FOR I = 1 TO 3: HCOLOR= 3: DRAW 9 AT R,100: HCOLOR= 0: DRAW 9 AT R,100: HCOLOR= 3: DRAW 8 AT R,100: FOR J = 1 TO 25:B =  PEEK( -16336): NEXT : HCOLOR= 0: DRAW 8 AT R,100: NEXT 
  65. 470  DRAW MS AT M,100: HCOLOR= 3: DRAW 9 AT R,100: FOR J = 1 TO 1000: NEXT : HCOLOR= 0: DRAW 9 AT R,100: IF SC <9  OR PILES <9  THEN 500
  66. 480  HOME : PRINT  CHR$(7)"THAT'S 100 MONSTERS!  WE'VE RUN OUT!!!": PRINT : HTAB 13: PRINT "PLAY AGAIN? ";: GET A$: PRINT : IF A$ = "Y"  THEN  CLEAR : GOTO 80
  67. 490  TEXT : HOME : END 
  68. 500  IF SC = 9  THEN SC = 0: HCOLOR= 0: FOR Y = 0 TO 60: HPLOT 0,Y TO 150,Y: NEXT :PILES = PILES +1: HCOLOR= 3: DRAW 10 AT 3 +30 *PILES -30,140: GOSUB 70: GOTO 140
  69. 510  HCOLOR= 3: ROT= 48: DRAW 4 AT  INT(SC/3) *50 +25,20 *(SC -3 * INT(SC/3)): ROT= 0:SC = SC +1: GOTO 140
  70. 520  TEXT : HOME : HTAB 6: PRINT "MATH MONSTER BY DONALD NUTE": PRINT 
  71. 530  PRINT "   MATH MONSTERS ARE FRUMPY LITTLE      FELLOWS WHO LOVE TO EAT MATHEMATICIANS! THEY CAN BE SMASHED WITH A SPECIAL      HAMMER, BUT THEY CAST PARALYSIS SPELLS  WHICH CAN KEEP YOUR RUNNER FROM GETTING"
  72. 540  PRINT "THE HAMMER.  THEIR SPELL IS CAST WHEN   THEY SHOUT A MULTIPLICATION OR DIVISION PROBLEM.  THE ONLY WAY TO BREAK THE     SPELL IS BY ANSWERING THE PROBLEM."
  73. 550  PRINT : PRINT "   YOU HAVE THREE MATHEMATICIANS TO TRY TO DESTROY 100 MATH MONSTERS.  YOU CAN  CHOOSE MULTIPLICATION OR DIVISION       PROBLEMS.  EACH TIME YOU SMASH A MONSTERHE WILL LIE DOWN TO BE COUNTED.  EACH"
  74. 560  PRINT "TIME YOU GET 10 MONSTERS, A LITTLE      TOMBSTONE WILL APPEAR.  YOUR RUNNERS    DISAPPEAR AS THEY ARE CAUGHT.": PRINT : PRINT "GOOD LUCK!": VTAB 24: HTAB 6: PRINT "PRESS ANY KEY TO CONTINUE. ";:: GET A$: PRINT : GOTO 80
  75. 570  PRINT "TIME YOU GET 10 MONSTERS, A LITTLE      TOMBSTONE WILL APPEAR.  YOUR RUNNERS    DISAPPEAR AS THEY ARE CAUGHT.": PRINT : PRINT "GOOD LUCK!": VTAB 24: HTAB 6: PRINT "PRESS ANY KEY TO CONTINUE. ";:: GET A$: PRINT : GOTO 90